﻿//dababase_interface.h
#ifndef _I_DATABASE_H
#define _I_DATABASE_H

#include <QJsonArray>
#include <QJsonObject>
#include <QList>
#include <QObject>
#include <QString>

//数据库访问引擎的接口
class IDatabase : public QObject
{
	Q_OBJECT
public:
    IDatabase(QObject* parent) : QObject(parent){}
    virtual ~IDatabase(){}

    //向某个数据表中插入一条数据
	virtual bool createRow(const QString& tableName, const QString& id, const QJsonObject& jsonObject) const = 0;

    //删除某个数据表中的一条数据
	virtual bool deleteRow(const QString& tableName, const QString& id) const = 0;

    //查找数据库中的数据
	virtual QJsonArray find(const QString& tableName, const QString& searchText) const = 0;

    //根据一条ID查找数据
	virtual QJsonObject readRow(const QString& tableName, const QString& id) const = 0;

    //查找所有数据
    virtual QJsonArray readAllRows(const QString& tableName) const = 0;

    //更新某条数据内容
	virtual bool updateRow(const QString& tableName, const QString& id, const QJsonObject& jsonObject) const = 0;
};
#endif
